package cn.neusoft.utils;

import com.alibaba.fastjson.JSONObject;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;

/**
 * json字符串转为一个实体类对象
 * json ---> JSONObject --->通过BeanUtils转成实体类对象
 */
public class JsonUtils {
    public static <T> T jsonStrToObj(String jsonStr,String pattern,Class<T> tClass){

        JSONObject jsonObj = (JSONObject) JSONObject.parse(jsonStr);  //将json字符串转成了json对象JSONObject，实际上是map结果
        ConvertUtils.register(new DateConverter(pattern),java.util.Date.class);
        T t = null;
        try {
            t = tClass.newInstance(); //对象实例化
            //将map中的kv对转成实体类对象对应的属性值
            BeanUtils.populate(t,jsonObj);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return t;
    }
}
